home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / TUTORIAL / 1307B.ZIP / BITOPS.MOD < prev    next >
Text File  |  1989-01-18  |  1KB  |  44 lines

  1. IMPLEMENTATION MODULE BitOps;
  2.  
  3. (*         Copyright (c) 1987, 1989 - Coronado Enterprises         *)
  4.  
  5. (* The logical operations performed here are done by converting    *)
  6. (* the input CARDINAL values into type BITSET and using the        *)
  7. (* resulting properties of the BITSET type to perform the required *)
  8. (* operations.                                                     *)
  9.  
  10. PROCEDURE LogicalAND(In1, In2 : CARDINAL) : CARDINAL;
  11. VAR Result : BITSET;
  12. BEGIN
  13.    Result := BITSET(In1) * BITSET(In2);
  14.    RETURN CARDINAL(Result);
  15. END LogicalAND;
  16.  
  17.  
  18. PROCEDURE LogicalOR(In1, In2 : CARDINAL) : CARDINAL;
  19. VAR Result : BITSET;
  20. BEGIN
  21.    Result := BITSET(In1) + BITSET(In2);
  22.    RETURN CARDINAL(Result);
  23. END LogicalOR;
  24.  
  25.  
  26. PROCEDURE LogicalXOR(In1, In2 : CARDINAL) : CARDINAL;
  27. VAR Result : BITSET;
  28. BEGIN
  29.    Result := BITSET(In1) / BITSET(In2);
  30.    RETURN CARDINAL(Result);
  31. END LogicalXOR;
  32.  
  33.  
  34. PROCEDURE LogicalNOT(In1 : CARDINAL) : CARDINAL;
  35. VAR Result : BITSET;
  36. BEGIN
  37.    Result := BITSET(In1) / BITSET(0177777B);
  38.    RETURN CARDINAL(Result);
  39. END LogicalNOT;
  40.  
  41. END BitOps.
  42.  
  43.  
  44.